package w83b.w83bOperacionesPaso.w83bIncidencias;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83b.w83bBeans.W83bIncidenciasBean;
import w83b.w83bUtilidades.W83bUtilidadesComunes;
import w83b.w83bUtilidadesComunes.W83bClsConstantes;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83bTablaAgrupacionesOP.java.
 *
 * @author Deusto Sistemas
 */
public class W83bTablaIncidenciasOPAction extends Q70ActionPasoOP{

	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//Guardamos la accion en el contexto
			contexto.set("action",request.getParameter("action"));
			W83bIncidenciasBean incidenciasBean = (W83bIncidenciasBean)contexto.get("w83bIncidenciasBean");
			if((StringUtils.isEmpty((String)contexto.get("modoPantalla"))
					||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla")))){				
					if("true".equals(request.getParameter(W83bClsConstantes.RIA_SEARCH))/*||
							"".equals(request.getParameter(W83bClsConstantes.RIA_SEARCH))*/){
						incidenciasBean = new W83bIncidenciasBean();
						incidenciasBean.setTerritorioIncidenciaDesde(request.getParameter("w83bIncidenciasBean.territorioIncidenciaDesde"));
						incidenciasBean.setAnyoIncidenciaDesde(request.getParameter("w83bIncidenciasBean.anyoIncidenciaDesde"));
						incidenciasBean.setNumIncidenciaDesde(request.getParameter("w83bIncidenciasBean.numIncidenciaDesde"));
						incidenciasBean.setTerritorioIncidenciaHasta(request.getParameter("w83bIncidenciasBean.territorioIncidenciaHasta"));
						incidenciasBean.setAnyoIncidenciaHasta(request.getParameter("w83bIncidenciasBean.anyoIncidenciaHasta"));
						incidenciasBean.setNumIncidenciaHasta(request.getParameter("w83bIncidenciasBean.numIncidenciaHasta"));
						incidenciasBean.setTerritorioActaDesde(request.getParameter("w83bIncidenciasBean.territorioActaDesde"));
						incidenciasBean.setAnyoActaDesde(request.getParameter("w83bIncidenciasBean.anyoActaDesde"));
						incidenciasBean.setNumActaDesde(request.getParameter("w83bIncidenciasBean.numActaDesde"));
						incidenciasBean.setTerritorioActaHasta(request.getParameter("w83bIncidenciasBean.territorioActaHasta"));
						incidenciasBean.setAnyoActaHasta(request.getParameter("w83bIncidenciasBean.anyoActaHasta"));
						incidenciasBean.setNumActaHasta(request.getParameter("w83bIncidenciasBean.numActaHasta"));
						incidenciasBean.setFechaEntradaDesde(request.getParameter("fechaEntrada_fInicio"));
						incidenciasBean.setFechaEntradaHasta(request.getParameter("fechaEntrada_fFinal"));
						incidenciasBean.setTipoSolicitante(request.getParameter("w83bIncidenciasBean.tipoSolicitante"));
						incidenciasBean.setTipoSolicitanteTxt(request.getParameter("w83bIncidenciasBean.tipoSolicitanteTxt"));
						incidenciasBean.setDniSolicitante(request.getParameter("w83bIncidenciasBean.dniSolicitante"));
						incidenciasBean.setNombreSolicitante(request.getParameter("w83bIncidenciasBean.nombreSolicitante"));
						incidenciasBean.setTipologiaIncidencia(request.getParameter("w83bIncidenciasBean.tipologiaIncidencia"));
						incidenciasBean.setTipologiaIncidenciaTxt(request.getParameter("w83bIncidenciasBean.tipologiaTxt"));
						incidenciasBean.setTramite(request.getParameter("w83bIncidenciasBean.tramite"));
						incidenciasBean.setTramiteTxt(request.getParameter("w83bIncidenciasBean.tramiteTxt"));
						incidenciasBean.setFechaTramiteDesde(request.getParameter("fechaTramite_fInicio"));
						incidenciasBean.setFechaTramiteHasta(request.getParameter("fechaTramite_fFinal"));
						incidenciasBean.setUltimoTramite(request.getParameter("w83bIncidenciasBean.ultimoTramite"));
						
						incidenciasBean.setFlagBusqNoValidada(request.getParameter("w83bIncidenciasBean.flagBusqNoValidada"));
						incidenciasBean.setFlagBusqValidada(request.getParameter("w83bIncidenciasBean.flagBusqValidada"));
						incidenciasBean.setFlagBusqDescartada(request.getParameter("w83bIncidenciasBean.flagBusqDescartada"));
						
						incidenciasBean = (W83bIncidenciasBean)W83bUtilidadesComunes.inicializarPaginadorPaginaUno(request, incidenciasBean);
						
						contexto.set("w83bIncidenciasBean",incidenciasBean);
					}else{
						incidenciasBean = (W83bIncidenciasBean)W83bUtilidadesComunes.inicializarPaginador(request, incidenciasBean);
						
						contexto.set("w83bIncidenciasBean",incidenciasBean);				
					}
		}else if("sord".equals(request.getParameter("action"))){
			incidenciasBean = (W83bIncidenciasBean)W83bUtilidadesComunes.inicializarPaginador(request, incidenciasBean);			
			contexto.set("w83bIncidenciasBean",incidenciasBean);
		}else if(StringUtils.isEmpty(((W83bIncidenciasBean)contexto.get("w83bIncidenciasBean")).getSort())){
			incidenciasBean = (W83bIncidenciasBean)W83bUtilidadesComunes.inicializarPaginador(request, incidenciasBean);			
			contexto.set("w83bIncidenciasBean",incidenciasBean);
		}else if(W83bClsConstantes.MODO_BUSQUEDA_CONBUSQ_INICIAL.equals(contexto.get("modoPantalla"))){
			incidenciasBean.setCambioPagina(false);			
			contexto.set("w83bIncidenciasBean",incidenciasBean);
		}
		
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		String action = (String)contexto.get("action");

		W83bIncidenciasBean incidenciasBean = (W83bIncidenciasBean)contexto.get("w83bIncidenciasBean");
		
		if(null==(ArrayList)contexto.get("w83bListaIncidencias")){	
			contexto.set("w83bListaIncidencias", new ArrayList());
		}

		if(incidenciasBean.isNullBusq()||incidenciasBean.isCambioPagina()||
				(W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla"))&&"".equals(request.getParameter(W83bClsConstantes.RIA_SEARCH)))){
			return mapping.findForward("outOP");
		}else 
			if ("find".equals(action)
				||"sord".equals(action)){
			//Si vengo de una pantalla anterior tengo que mirar si he realizado una búsqueda anterior
			if(StringUtils.isEmpty((String)contexto.get("modoPantalla"))
					||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla"))){
				return mapping.findForward("find");
			}else{
				contexto.set("modoPantalla",W83bClsConstantes.MODO_BUSQUEDA);
				contexto.set("migas","inicio.incidencias.busqIncidencias");
				if("true".equals((String)contexto.get("busqRealizada"))){
					return mapping.findForward("find");					
				}
			}
		}

		
		return mapping.findForward("ok");
	}

}
